/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package cl.presidenciales.bd;
import cl.presidenciales.modelo.Ciudadano;
import java.sql.SQLException;
import java.util.Date;
/**
 *
 * @author pperezp
 */
public class Data {
    public Ciudadano estaCorrecto(Ciudadano ciudadano) throws SQLException{
        /*Conectar a la base de datos*/
        Conexion.conexionEspefica("localhost", 
                "presidenciales", "root", "BASEdeDATOS");
        
        /*Creo la sentencia para poder enviar consultas sql a MySQL*/
        Conexion.sentencia = Conexion.conexion.createStatement();
        
        /*Creo la consulta*/
        String select = "select * from ciudadano where rut = '"+ciudadano.getRut()+"' "
                + "and clave = '"+ciudadano.getPassword()+"'";
        
        System.out.println(select);
        
        /*Ejecuto la consulta*/
        Conexion.tablaResultado = Conexion.sentencia.executeQuery(select);
        
        /*Veo si hay algun registro de esa consulta. algun resultado*/
        if(Conexion.tablaResultado.next()){
            Ciudadano ciu;
            
            /*Rescato los datos*/
            String nombre, sexo;
            int edad;
            Date fechaNacimiento;
            
            nombre = Conexion.tablaResultado.getString("nombre");
            sexo = Conexion.tablaResultado.getString("sexo");
            edad = Conexion.tablaResultado.getInt("edad");
            fechaNacimiento = Conexion.tablaResultado.getDate("fechaNacimiento");
            
            /*Creo el objeto con esos datos*/
            ciu = new Ciudadano(ciudadano.getRut(), nombre, sexo, edad, fechaNacimiento, ciudadano.getPassword());
            Conexion.sentencia.close();
            /*Retorno ese objeto*/
            return ciu;
            
        }else{
            Conexion.sentencia.close();
            return null;
        }
    }

    public boolean isVoto(String rut) throws SQLException{
        boolean voto = false;
        
        Conexion.conexionEspefica("localhost", 
                "presidenciales", "root", "BASEdeDATOS");
        
        Conexion.sentencia = Conexion.conexion.createStatement();
        
        String consulta = "call isVoto('"+rut+"')";
        
        Conexion.tablaResultado = Conexion.sentencia.executeQuery(consulta);
        
        if(Conexion.tablaResultado.next()){
            voto = true;
        }
        
        Conexion.sentencia.close();
        
        return voto;
    }
    
    public void votar(Ciudadano ciudadano, int candidato) throws SQLException{
        Conexion.conexionEspefica("localhost", 
                "presidenciales", "root", "BASEdeDATOS");
        
        /*Creo la sentencia para poder enviar consultas sql a MySQL*/
        Conexion.sentencia = Conexion.conexion.createStatement();
        String consulta ;
        if(candidato == -1){
           consulta = "call votar('"+ciudadano.getRut()+"','null')";
        }else{
            consulta = "call votar('"+ciudadano.getRut()+"','"+candidato+"')";
        }
        
        
        
        Conexion.sentencia.execute(consulta);
        
        Conexion.sentencia.close();
    }
}
